I plan to use ArcGIS Desktop with GeoRover tools. I do not have experience with either. I would like to know if I would be able to create a socket connection to an external application from my ArcGIS application? Does ArcGIS provide a way to write custom code? For example, Java or Python code to do something custom with data that is made a part of the ArcGIS application?