Unless you are writing low level drivers, your class undoubtedly depends on other classes to do the actual communications. In that event, I would use dependency injection to supply those classes or wrappers around them, if they aren't easily mocked. In you tests, you'd supply a mock version of the classes you are depending on (or the wrappers if you can't mock the actual classes). Verify that the correct methods with the proper parameters are invoked by your methods on the mocks that you supply. Make sure you have enough unit tests to satisfy yourself that you've covered the full range of behavior from the real dependencies. This will suffice for your unit tests.
You will also need some integrations tests. Unfortunately, the easiest way to do this is probably to develop a full-up mock server to communicate with. Note that your mock server need only implement the interface -- not the actual code on the other end. Supply some extra methods to allow you to set the server up for your integration tests so that the expected behavior with the mock server occurs.